package com.tiancheng.trade.settlement.vo.payment;

import com.tiancheng.trade.settlement.enums.ApprStatusEnum;
import com.tiancheng.trade.settlement.enums.PaymentChannelEnum;
import com.tiancheng.trade.settlement.enums.PaymentFlowDetailSettleStatusEnum;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

/**
 * @author kellen
 * @date 2021/4/1
 */
@Data
@NoArgsConstructor
public class PaymentFlowDetailVO {
    /**
     * settle_file表id
     */
    private Long sfId;
    /**
     * flow_detail表id
     */
    private Long fdId;
    /**
     * flow表id
     */
    private Long fId;
    /**
     * settle_detail表id
     */
    private Long sdId;
    /**
     * 划付-成功笔数
     */
    private Integer apprSuccessNum;
    /**
     * 商户编号
     */
    private String merchantCode;
    /**
     * 商户名称
     */
    private String merchantName;
    /**
     * 支付单号
     */
    private String paymentId;
    /**
     * 支付流水号
     */
    private String flowId;
    /**
     * 子订单号
     */
    private String subOrderId;
    /**
     * 子订单流水号
     */
    private String subOrderFlowId;
    /**
     * 支付渠道
     *
     * @see PaymentChannelEnum
     */
    private String paymentChannel;
    /**
     * 子订单应收金额
     */
    private Integer orderAmount;
    /**
     * 子订单实收金额
     */
    private Integer amount;
    /**
     * 应划付金额
     */
    private Long targetApprAmount;
    /**
     * 退款金额
     */
    private Long refundAmount;
    /**
     * 划付-金额
     */
    private Long apprAmount;
    /**
     * 划付-状态：ING=划付中；SUCCESS=划付成功；FAIL=划付失败
     *
     * @see ApprStatusEnum
     */
    private String apprStatus;
    /**
     * 应分账金额
     */
    private Long targetDistAmount;
    /**
     * 退款返还的分账金额
     */
    private Long refundDistAmount;
    /**
     * 分账-金额
     */
    private Long distAmount;
    /**
     * 分账-状态：ING=分账中；SUCCESS=分账成功；FAIL=分账失败
     *
     * @see ApprStatusEnum
     */
    private String distStatus;
    /**
     * 应清算日期
     */
    private LocalDate targetClearDate;
    /**
     * 实际清算日期
     */
    private LocalDate actualClearDate;
    /**
     * 清算状态
     * @see PaymentFlowDetailSettleStatusEnum
     */
    private String clearStatus;
    /**
     * 交易中台对应的产品码
     */
    private String productId;
}
